package com.doudou.base.resources.service;

import com.doudou.base.resources.entity.dto.user.account.UserAccountInfoAddDto;
import com.doudou.base.resources.entity.dto.user.account.UserAccountInfoUpdateDto;
import com.doudou.client.entity.UserAccountInfoDto;
import com.doudou.client.entity.UserDetailsInfoDto;
import com.doudou.commons.entity.PageInfo;
import com.doudou.commons.entity.PaginationSupport;

import java.util.List;

/**
 * 用户账号的详情 服务类
 *
 * @author 傻男人
 * @since 2020-05-14
 */
public interface UserAccountInfoService {
    /**
     * 添加用户账号的详情
     *
     * @param userAccountInfoAddDto
     * @return
     */
    UserAccountInfoDto addUserAccountInfo(UserAccountInfoAddDto userAccountInfoAddDto);

    /**
     * 根据ids删除用户账号的详情
     *
     * @param ids
     * @return
     */
    int deleteUserAccountInfo(String ids);

    /**
     * 根据id修改用户账号的详情
     *
     * @param userAccountInfoUpdateDto
     * @return
     */
    Integer updateUserAccountInfo(UserAccountInfoUpdateDto userAccountInfoUpdateDto);

    /**
     * 根据ids查询用户账号的详情
     *
     * @param ids
     * @return
     */
    List<UserAccountInfoDto> findUserAccountInfo(String ids);

    /**
     * 根据id查询用户账号的详情
     *
     * @param primaryId
     * @return
     */
    UserAccountInfoDto findUserAccountInfoById(Long primaryId);

    /**
     * 根据用户名与密码查询用户信息
     *
     * @param username
     * @param password
     * @return
     */
    UserDetailsInfoDto findByUsernameAndPassword(String username, String password);

    /**
     * 根据用户名查询用户信息
     *
     * @param username
     * @return
     */
    UserAccountInfoDto findByUsername(String username);

    /**
     * 根据用户手机号查询 如果没有找到就用手机号作为注册账号
     *
     * @param phone
     * @return
     */
    UserAccountInfoDto findNoRegisterByPhone(String phone);

    PaginationSupport<UserAccountInfoDto> findPageHelper(PageInfo pageInfo);

}